package org.finesys.common.hazelcast.core.base;

import java.util.concurrent.TimeUnit;

public interface DistributedQueue<T> {

    /**
     * 添加
     *
     * @param data 数据
     * @return true or false
     */
    boolean offer(T data);

    /**
     * 检索并删除此队列的头，如果此队列为空，则返回null
     *
     * @param timeout  超时时间
     * @param timeUnit 时间单位
     * @return 数据
     */
    T poll(long timeout, TimeUnit timeUnit);

    /**
     * 清空队列
     */
    void clear();
}
